home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr04
/
fgf_edt1.zip
/
BETAGUID.TXT
< prev
next >
Wrap
Text File
|
1993-07-01
|
17KB
|
360 lines
The Beta Tester's Guide
by Tom Rawson, JP Software
[Copyright 1988, 1991, 1992, JP Software Inc., All Rights
Reserved. See end of document or contact J.P. Software, 617-646-
3975, for reprint / distribution restrictions.]
This guide is designed to give you a few ideas about what to
expect and how you should behave as a "beta tester" for a piece
of software. It is written with beta testing for the small
commercial or shareware developer in mind, but you may also find
it useful if you're beta testing a product from a large software
developer.
What's a Beta Test?
Most programs or program enhancements of any consequence go
through roughly four different phases between the original design
and first release:
(1) Design, coding, and testing by developer.
(2) "Alpha" test by a small group selected by the developer. In
software development it's pretty easy to be so involved in the
program that significant bugs or design problems are missed.
It's also almost impossible to foresee and have good judgement
about all the things users might want or need, and many of these
things can't be determined during the design phase.
The alpha testers are extra sets of eyes and ears for the
developer. They pick up bugs that an end user might look at and
say "gee, they should never have even considered releasing this
thing!" They try out different approaches to the user interface,
run the software on a variety of hardware configurations, or
debate suggestions on what functions should be included or
excluded. In a large company the alpha testers may all be
internal to the company, or may include only a very small number
of trusted and technically competent customers.
When the alpha test is complete the product may not be bug free,
but it is known to run reasonably well on a variety of systems
without exhibiting major bugs or destroying other parts of the
system. It also usually has at least reasonably good agreement
from the alpha test group that it meets their needs and the needs
they perceive users will have.
(3) "Beta" test by a larger and more representative group of
customers, either those who expressed interest in testing a new
product, or those who are already using an older version and are
willing to try out a new release.
The job these people have is to make sure the product is solid
before it is released, i.e. that it runs properly on the widest
possible variety of appropriate hardware; that both major and
minor bugs are identified and taken care of; that auxiliary items
such as support programs, documentation, and help screens are
well-designed and work correctly; and that any additional design
and interface problems are identified and dealt with.
Most products go through more than one phase of beta testing
before release, and there are usually a number of updates
supplied to beta testers as the product is refined and corrected
in response to their comments.
(4) Release of the product to the public.
Once these four phases are complete there is often ongoing beta
testing of additional enhancements to the program. This may
begin immediately after release, or be delayed for a while,
depending on the development cycle the developer wants or has the
resources to follow.
Beta Testing Pros and Cons
If you decide to beta test a product you are going to get some
benefits. You will get the latest release early, usually well
ahead of others; this can be especially important if you need to
use some new features of a product to get your job done or your
application running. You will have an opportunity to shape the
nature of the final product, which may be important if it's
something you use or plan to use heavily. And you may have a
chance to learn the internal workings of the product. You'll
probably get to know the developer and support staff well, and
have an inside connection for any future questions or support
needs.
In most cases, you will receive a free copy of the product or
update (some large companies actually pay beta testers, but it is
not a common practice for PC software vendors, especially
shareware developers and small companies).
You are also going to have some frustrations. The program is
going to have bugs in it. Some of them will be in the piece that
you just had to have yesterday. The user interface will change
on you and you'll have to re-learn the command-line switches, or
the function keys, or some other part of the program's behavior.
Things that used to work will "break" in a new release, then get
fixed again. The developer will not be able to fix everything
right away. Some of your suggestions will be rejected for
reasons you don't agree with.
Most beta testers of course find that the benefits outweigh the
frustrations; if not they don't become (or remain) beta testers.
Beta Testing Guidelines
These guidelines are intended to help you do what's necessary to
make the beta test a productive experience for both you and the
program's developer. They aren't absolute of course, and some
will vary from situation to situation. Some of them may seem to
conflict; that's intentional. Striking a good balance is what
will make your participation in the beta test go well.
(1) Verify what you find. Does the program behave strangely if
you run it on Sunday morning, and work fine the rest of the time?
Don't fire off a bug report the first time, try it again. Don't
overdo it -- there's no point in beating your head against the
wall -- but two or three tries at reproducing the problem and
determining under exactly which conditions it occurs may be
immensely helpful to the developer. Remember, s/he isn't sitting
there at your computer, and the problem may not show up the same
way on another system.
(2) Don't jump to conclusions. If you report that "this thing
doesn't work when run with my pop-up calculator", you should try
to verify that that's really what's happening. Is it really the
calculator, or is it only when the calculator is loaded with the
disk cache that the problem occurs? Has your favorite
hexadecimal to dodecahedral conversion algorithm really been
eliminated in the new release, or was it just accidentally left
off the help screen? It is much easier to send the developer off
on a wild goose chase if it appears that you've narrowed the
problem down further than you actually have.
Another way to say this is, when reporting on something to the
developer, differentiate between what you know and what you're
guessing at: "With my Paradise VGA board and a Magnavox monitor
the text comes out pink on red, perhaps there's a problem with
the color selections on VGAs" rather than "The color selections
don't work on VGAs any more". Of course the developer must
"edit" your reports in this same fashion, but the more specific
you can be about what you actually know, the better.
(3) Report everything. Verify it first, and report only what you
found, but do report it. The thing you run across once that
appears minor may be a key issue for some other type of customer,
and the developer will want to know about it. Don't make the
decision for the developer that something is too small to matter.
(4) Express your opinion, positive and negative. Is there
something you like, especially something new? Say so! If you
don't the developer may decide it isn't such a big deal and get
rid of it, when really it made the program much better. If the
new menu arrangement is really super and worth losing
compatibility with the old one, the developer needs to know.
Is there something you don't like, even though it's not a bug?
Maybe the human engineering of the keyboard is great with the
function keys at the left, but on a keyboard with top-row
function keys it is incredibly difficult to use. Say that too --
once (then see the next section!). Don't restrict yourself to
bug reports; the developer tries to assemble a representative
group of testers, and relies on you to state your opinion
thoughtfully.
Be sure you provide alternatives when you have problems with the
design: "It would be better if it did Y" rather than just "It
shouldn't do X". The developer is going to have a much easier
time being responsive if your suggestions are constructive.
Sometimes this is difficult -- for example, if the program is too
slow, you may not know how to make it faster. But you can at
least indicate why that is a problem: explain just which parts
are too slow to meet your needs, and what those needs are.
(5) Expect to be snubbed. OK, maybe that's a little strong. But
remember that the developer is dealing with a lot of (usually
conflicting) ideas, suggestions, and reports. Yours is not going
to be given a high priority simply because it is important to
you, unless it also fits in with other plans, the reasonable way
to do the programming, etc.
Most developers are quite responsive during a beta test, but they
also have to keep the product operating consistently and do their
work efficiently; as a result, they may choose to make decisions
you don't like. The best developers will consider the product to
be yours as much as theirs, but they must still be the ultimate
architect of how it looks and works.
Further, you may have ideas that sound good on the surface, but
turn out to be infeasible because they require rewriting a major
portion of the code, or would need a change to the operating
system, etc. Often these things cannot be seen from the outside,
so your suggestion may appear like the "obvious" way to do
things, yet still be difficult to impossible to implement.
So go ahead and argue for your point of view. Present it, see if
you can convince your fellow beta testers (if you have contact
with them) and/or the developer. But if you lose the battle, let
it go -- if you can't, you probably shouldn't be beta testing the
product.
(6) Keep your files backed up. There are all sorts of ways that
a bug can cause a disk error that messes up a file, a directory,
or even a whole disk. These are usually very rare, but they
cannot be entirely eliminated without testing; since you're one
of the testers, you need to be prepared to handle them, and check
for them.
For example, on an MS-DOS system when testing a program that uses
files (as most do), you should run CHKDSK periodically to
determine that your file allocation table isn't getting mixed up.
Of course if it is, try to verify that the problem is caused by
the program you're testing -- many things can mess up the disk,
and it is the kind of bug you need to verify as carefully as
possible before sounding an alarm, and report as specifically as
possible.
(7) Don't use a beta test version for critical applications. In
some cases you may have to, but be prepared for the consequences.
At least once during the beta test you will probably find that
something you need isn't working, and you'll have to go back to
an earlier version, or the previous release (pre-beta test), to
get your work done. If you have become dependent on new
features, you may be in trouble.
Similarly, features or methods of operation added during the beta
test can also be removed if problems crop up, so the thing you
need most may disappear. This is rare, but sometimes the
developer will find that a feature just doesn't fit with the rest
of the program and has to be changed. As long as the product
hasn't been released, that's the developer's prerogative.
(8) Use the program as you normally would. On the one hand, the
developer is expecting you to really use the program, not just
try it a couple of times -- if you're just a casual user, let the
developer know as they may need more regular users to make the
test worthwhile. But on the other hand, you don't need to overdo
it or try every single feature, unless you want to.
The developer has recruited beta testers with a variety of
experience levels, needs, and uses of the product, to be sure all
aspects are tested. If you use the product in your usual way and
pay careful attention to any problems, questions, or suggestions,
you can feel comfortable that you're doing a good job.
Do try out new features that you're interested in, or test the
program at "boundary conditions" if you can. ("What happens if I
give it a *really* big file to process? How about a really small
one?"). But it is probably more valuable to the developer to have
you watching carefully what happens during normal use than to
have you trying all sorts of features you aren't familiar with
but not really paying attention to what happens and how they
work.
(9) Keep things confidential. In virtually all cases the
developer will require that some or all aspects of the beta test
be kept confidential. Respect this agreement. Don't pass copies
of the program around, and don't talk about anything you aren't
supposed to talk about. The developer has determined what
information s/he wants to make public and when based on what
market the program is in and how the new product or version will
be publicized; it's not up to you to decide this on your own. Of
course the developer needs to make these restrictions clear at
the beginning (most developers use a formal, signed beta test or
non-disclosure agreement which spells these things out exactly).
You could even be subject to legal action if you violated such an
agreement.
(10) Keep the old versions. You will certainly need them. The
newest version is going to fix some bugs and introduce others,
some of which you may find intolerable. The best way to handle
this for most people is to save the most recent public release
(if you are working on an enhancement), the most recent
relatively stable beta test version, and the most recent and
next-most-recent beta test versions, whether they are stable for
your use or not. This allows you to test things on different
versions if you can, and go back to older stable versions if
necessary.
(11) Know when to get on (and off) the beta test "bandwagon".
Some developers may not know when their product isn't ready for
beta testing yet, and some beta testers may not realize what
they're getting into. You can find lots of requests for beta
testers on electronic bulletin boards and on-line services.
Virtually all of them are from reputable developers with a
product that is most likely more than ready to go into beta test.
But occasionally you may find that the program is just too buggy
to even try, or that it doesn't meet your needs in the way you
thought it would.
When this occurs just politely inform the developer that you'd
like to withdraw from the test. Remember that what you were
promised was the right to try the new version and test it; if it
doesn't work the way you wanted it to you can certainly stop. Be
gracious about it, and the developer usually will also.
Similarly, if you can't continue using the product reasonably
regularly and reporting the results, or meet other conditions the
developer sets, you should also withdraw, because your
participation won't meet the developer's needs.
If you do choose to withdraw before you've put in the requisite
amount of effort, or you haven't met all of the developer's
conditions (e.g., filling out an evaluation form) don't expect a
free copy of the program when it's released, as you haven't
continued with your end of the deal. But do expect the developer
to be polite about it also: people drop out of beta tests all
the time, and it's the developer's responsibility to assemble a
team that can handle a little attrition.
Conclusion
You'll probably find being a beta tester rewarding and valuable;
for popular products there are often many more people ready to
test than needed. If you pay attention to what you're doing and
follow the guidelines above, you can make it work well for both
yourself and the developer.
----------------------------------------------------------------
This guide was written by Tom Rawson, JP Software Inc.,
Arlington, MA, and is Copyright 1988, 1991, 1992, JP Software
Inc., All Rights Reserved. Permission is granted for developers
of public-domain and shareware software to distribute this
material at no charge in conjunction with beta tests of their
products, provided this notice is included. Any other use
requires specific permission from JP Software. We can be
contacted via CompuServe ID 75300,210 or by calling 617-646-3975
during normal business hours. JP Software is the publisher of
4DOS, the award-winning COMMAND.COM replacement for MS-DOS,
PC_DOS, and DR-DOS, and of 4OS2, the superior replacement command
processor for OS/2 1.2, 1.3, and 2.0.